
#ifndef REQUEST__H
#define REQUEST__H
#include <map>
#include <cstring>
#include <sstream>
#include <string>
#include <memory>
#include <vector>
#include <iostream>
class RequestHead{
private:
    std::string method;  // 请求方法
    std::string url;  // url
    std::string version;  // 协议版本
    std::map<std::string,std::string> msg;  // 头部字段信息
    // int client_fd;  // 请求的文件描述符
public:
    std::vector<std::string> args;  // url 中的临时参数
    void setMethod(std::string& method);
    void setUrl(std::string& url);
    void setVersion(std::string& version);
    void setMsg(std::string& key,std::string& value);
    const std::string& getMethod() const {
        return method;
    }
    const std::string& getUrl() const{
        return url;
    }
    const std::string& getVersion() const {
        return version;
    }
    const std::map<std::string,std::string>& getMsg() const {
        return msg;
    }
    void clear();
};

int add(const char* buf,int buf_size,std::shared_ptr<RequestHead>& RHead);

#endif